Compiler

有没有大佬给我讲解一下MSVC、MINGW,gcc、g++,qmake、cmake的联系和区别是什么? - 知乎

编译器的作用就是把人类可读的语言转变为机器可读的语言。

GCC(GNU Compiler Collection)

History - GCC Wiki
GCC的组成部分以及使用到的软件 (biancheng.net)
GCC/G++用法汇总_Kessity的博客-CSDN博客_gcc语法

GCC 是 GNU 计划开发的编译器,直观的翻译大概为 GNU 编译器合集,目的与功能就是各种语言的编译。

Release Release date
started 1984
0.9 (first beta release) March 22, 1987
extended to compile C++ December, 1987
GCC 2.95.3(GCC stands for the GNU Compiler Collection) March 16, 2001
gcc 和 g++ 是 GCC 中的编译器工具。gcc 通用可以编译多种语言,在命令行出现过的 gcc 开头的命令就是使用该工具,也许最开始的 GCC 所代表的意思 GNU C Compiler 就是指 gcc 。g++ 主要编译 C++程序,也可以将 C 程序视为 C++程序进行编译。(就本质而言,gcc 和 g++ 并不是编译器,也不是编译器的集合,它们只是一种驱动器,根据参数中要编译的文件的类型,调用对应的 GUN 编译器,所以才实现的对不同语言编译)

MinGW(Minimalist GNU for Windows)

pl-docs/zh-CN/mingw-vs-mingw-v64.md at master · FrankHB/pl-docs · GitHub

MinGW 是开发环境,一整套的工具链而不仅仅是 GCC 的移植,GCC 只是它的核心组件之一。

MinGW-W64

MinGW-W64 并非 MinGW 的更新换代,而是独立项目。

MinGW Distribution(Distro)

发行版的概念源自 Linux,自由的加入自己需要的功能打包发布。

MinGW Distro - nuwen.net

没有 git 下第一个,有 git 下第二个,打开是个自动下载解压工具,放到合适的位置,再在环境变量里添加就可以了

Clang and LLVM

经典编译器组成(前端+优化器+后端)以及LLVM和Clang简介_编译器前端-CSDN博客
详解三大编译器:gcc、llvm 和 clang

LLVM

Clang 对应传统编译器的前端,LLVM 对应优化器和后端,这是比较细的说法,也可以

mac 终端中,输入 gcc 命令,为什么运行的是 clang? - 邱昊宇的回答 - 知乎
https://www.zhihu.com/question/24275474/answer/27262584

char           : -128~127
signed char    : -128~127
unsignd char   : 0~255

short          : -32768~32767
int            : -2147483648~2147483647
long           : -9223372036854775808~9223372036854775807

unsigned short : 0~65535
unsigned       : 0~4294967295
unsigned long  : 0~18446744073709551615

Compilation Process

编译原理:编译过程概述 - 牛犁heart - 博客园
C / C++程序编译过程 | 太傅博客

预处理(Pre-Processing)、编译(Compilation)、汇编(Assembling)、链接(Linking)

编译过程基本是相似的,